Methods and apparatus for locating mobile devices using wireless signals in mixed mode

ABSTRACT

Disclosed examples operate in a transmit mode during a first period of time to cause transmission of first signals, the first signals to be received by a plurality of access points; operate in a receive mode during a second period of time to receive second signals from the plurality of access points; log device identifiers of the plurality of access points in association with signal strengths of corresponding ones of the second signals; and cause transmission of the device identifiers and the signal strengths to a server, the device identifiers and the signal strengths to facilitate processes at the server to: (a) train a neural network, (b) generate a corrected contour map associated with the plurality of access points based on the neural network, and (c) determine a location of the programmable circuitry based on the corrected contour map.

RELATED APPLICATIONS

This patent arises from a continuation of U.S. patent application Ser.No. 17/135,444, filed on Dec. 28, 2020, which is a continuation of U.S.patent application Ser. No. 16/734,113, filed on Jan. 3, 2020, now U.S.Pat. No. 10,880,861, which is a continuation of U.S. patent applicationSer. No. 15/721,183, filed on Sep. 29, 2017, now U.S. Pat. No.10,531,425. U.S. patent application Ser. No. 17/135,444, U.S. patentapplication Ser. No. 16/734,113, and U.S. patent application Ser. No.15/721,183 are hereby incorporated herein by reference in theirentireties. Priority to U.S. patent application Ser. No. 17/135,444,U.S. patent application Ser. No. 16/734,113, and U.S. patent applicationSer. No. 15/721,183 is hereby claimed.

FIELD OF THE DISCLOSURE

This disclosure relates generally to determining mobile devicelocations, and, more particularly, to methods and apparatus for locatingmobile devices using wireless signals in mixed mode.

BACKGROUND

Mobile device manufacturers, mobile device service providers, andapplication developers use a number of techniques to detect locations ofmobile devices. For example, some techniques determine a cell of awireless network to which a mobile device is connected and reportlocation based on the connected cell. Since a base station for each cellis in a fixed location, the cell identity can be translated into alocation for a mobile user based on the location of the base station.Some techniques use wireless communication protocols (e.g., Bluetooth,Wi-Fi, etc.) to locate devices. For example, locations of fixed Wi-Fiaccess points can be used to determine locations of mobile devicesassociated with the Wi-Fi access points.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example mobile device location detection systemthat may be used to detect locations of mobile devices in accordancewith the teachings of this disclosure.

FIG. 2 illustrates an example environment in which the example mobiledevice location detection system of FIG. 1 may be implemented.

FIG. 3 illustrates an example mobile device location detection systemthat may be used to implement examples disclosed herein.

FIG. 4 illustrates an example log file that may be implemented usingexamples disclosed herein.

FIG. 5 is a flowchart representative of example machine readableinstructions that may be executed to implement wireless access pointsand/or mobile devices of the example mobile device location detectionsystems of FIGS. 1 and 3 .

FIG. 6 is a flowchart representative of example machine readableinstructions that may be executed to collect signals broadcasted in anarea to implement the example mobile device location detection systemsof FIGS. 1 and 3 .

FIG. 7 is a flowchart representative of example machine readableinstructions that may be executed to implement the example mobile devicelocation detection systems of FIGS. 1 and 3 .

FIG. 8 is a flowchart representative of machine readable instructionsthat may be executed to generate contour perimeters to implement theexample mobile device location detection systems of FIGS. 1 and 3 .

FIG. 9 is a flowchart representative of machine readable instructionsthat may be executed to implement the example mobile device locationdetection systems of FIGS. 1 and 3 .

FIG. 10 is a block diagram of an example processor platform capable ofexecuting the instructions of FIGS. 5, 6, 7, 8 and/or 9 to implement theexample mobile device location detection systems of FIGS. 1 and 3 .

The figures are not to scale. Wherever possible, the same referencenumbers will be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts.

DETAILED DESCRIPTION

Methods and apparatus for determining physical locations of mobiledevices using wireless signals in mixed mode are disclosed. Priormethods for determining physical locations of a mobile device use aone-way signal from an access point to the mobile device. This becomesproblematic when the line of sight between the access point and themobile device is compromised. For example, the mobile device may becarried by a user walking in a mall. The user may enter a first storewhere the line of sight from the mobile device to an access point isobstructed by an object. Additionally, the mobile device may be in theline of sight of another access point located in a second, neighboringstore. In this example, the mobile device is identified as locatedwithin the second, neighboring store, even though the mobile device islocated in the first store. For entities that monitor shopping habits ofindividuals, this is a problem because stores that were never visitedare credited as having been visited.

Examples disclosed herein enable determining physical locations ofmobile devices more accurately than prior techniques. More specifically,examples disclosed herein use alternating receive modes and transmitmodes between mobile devices and access points to track the locations ofpersons in areas in which signal-attenuating obstructions between themobile devices and the access points substantially decrease or preventuseful wireless communications between the devices.

In some examples disclosed herein, a mobile device (e.g., a cell phone,a smart phone, a tablet, wearable device, etc.) is used as an interfacebetween a person and a location detection platform. Specifically, themobile device operates in a transmit mode to transmit signals via awireless communication protocol (e.g., Bluetooth, Wi-Fi, etc.) forreception by wireless access points during a first period of time andthen operates in a receive mode to monitor or listen for signals fromthe wireless access points within wireless communication range during asecond period of time. The wireless access points (e.g., Wi-Fi accesspoints, Bluetooth Low Energy (BLE) beacons, BLE tags, etc.) operate in asimilar manner to the mobile device. Examples disclosed herein usesignal characteristics of the signals detected by a mobile device and bywireless access points and use known fixed X-Y-Z locations of thewireless access points to determine an unknown physical location of themobile device.

In operation, a wireless access point operates in a receive mode tomonitor or listen for all mobile devices and access points transmittingcorresponding identifiers. When operating in the receive mode, thewireless access point collects timestamps, Service Set Identifiers(SSID) of transmitting access points, identifiers of transmitting mobiledevices, and signal strengths (e.g., in dBm) of received signals fromthe mobile devices and the other wireless access points. In someexamples, the wireless access point may additionally or alternativelycollect a quality measurement (e.g., a link-quality measurement), andexamples disclosed herein may be additionally or alternatively based onsuch quality measurements. The wireless access point then switches totransmit mode and broadcasts its SSID (e.g., AP123). The other mobiledevices and access points switch to receive mode and listen to thisbroadcast and collect a timestamp, an SSID and a signal strength fromthe transmitting wireless access point. This process repeats for adevice location duration (e.g., X seconds: a device is in receive modefor X/2 seconds, and in transmit mode for X/2 seconds). As used herein,a device location duration is an amount of time during which one or moreproximately located mobile device(s) and/or access point(s) operate inalternate receive and transmit modes to assess transmission signalstrengths and, in turn, assess whether one or more access point(s) maybe unusable (e.g., due to possible obstruction(s), loss of power ofaccess point(s), etc.) to determine the location(s) of one or moremobile device(s).

To manage all of the data, a collection application is run on eachmobile device and access point to collect the device identifiers,timestamps and signal strengths in log files. In some examples, the logfiles are plain text files in which each signal strength measurement indecibel-milliwatts (dBm) is recorded in a single record that includes acorresponding timestamp and device identifier. Additionally, thecollection application creates a number of records in the log files toindicate when the mobile device(s)/access point(s) switched from receivemode to transmit mode and when the mobile device(s)/access point(s)switched from transmit mode to receive mode. At the conclusion of adevice location phase during the device location duration, the mobiledevice(s) and access point(s) transmit all of the collected data to adata collection server.

The data collection server may analyze the signal strength values fromthe log files to train a neural network to map the surrounding areaswith a contour perimeter corresponding to the wireless access points inthe area. The contour perimeter map is representative of the location ofthe wireless access points within the region of wireless communicationrange. The map is utilized to determine the location of a mobile deviceeven when it is not possible to receive a direct signal (e.g., line ofsight) at the wireless access point from the mobile device due to anobstruction by a physical barrier. The disclosed examples do not requireto connect or pair the mobile device and the wireless access pointbecause the examples disclosed herein do not require wireless datatransfer between devices. For example, techniques disclosed herein maydetect signals and measure signal strengths based on device discoverycommunications without needing to associate, connect, or pair with oneanother. An example Wi-Fi device discovery exchange involves a firstwireless station (e.g., an access point or wireless client) wirelesslytransmitting a probe request communication, and a second wirelessstation responding by wirelessly transmitting a probe responsecommunication. Of course, any other type of wireless signal exchangesbased on any other suitable protocol may additionally or alternativelybe used.

FIG. 1 illustrates an example mobile device location detection system100 that may be used to detect locations of mobile devices in accordancewith the teachings of this disclosure. The example mobile devicelocation detection system 100 includes example access points (APs) 102a-d, an example mobile device 104, an example physical obstruction 106,an example server 108 (e.g., a computer), an example AP-only signalstrength matrix 110, an example signal strength matrix 112, an examplecontour perimeter map 114, an example obstructed contour perimeter 116,and an example corrected contour perimeter 118.

In the illustrated example, to correct anomalies in measurementdifferences when the physical obstruction 106 is present, the wirelessaccess points 102 a-d and the mobile device 104 operate in alternatingreceive and transmit modes during a device location duration in such away that at different times during the device location duration, amajority of devices are in receive mode to monitor or listen to one ormore wireless signals from the mobile device 104 to determine signalstrengths of the mobile device 104.

In the illustrated example, the wireless access points 102 a-d arestationarily located at corresponding fixed locations. To determinesignal strength measurements between one another in their space ofoperation, the wireless access points 102 a-d exchange wireless signalsor communications between one another during an AP-only calibrationduration. For example, in an AP-only calibration phase during theAP-only calibration duration, the wireless access points 102 a-dalternate between transmit and receive modes to measure signal strengthsbetween one another. The measured signal strengths can differ betweenAP's due to different attenuation factors and distances between theaccess points 102 a-d. At the conclusion of the AP-only calibrationduration, the access points 102 a-d transmit AP-only calibration logfiles to the server 108. The AP-only calibration log files includedevice IDs (e.g., SSIDs) of transmitting ones of the access points 102a-d and corresponding signal strength measurements collected during theAP-only calibration duration. The example server 108 analyzes the signalstrength measurements from the log files and generates an exampleAP-only signal strength matrix 110 for the access points 102 a-d. Theexample AP-only signal strength matrix 110 for the access points 102 a-dis used to train a neural network that can more effectively locate themobile device 104 when near the access points 102 a-d.

When the mobile device 104 is present, the mobile device 104 and theaccess points 102 a-d alternate between receive mode and transmit modeone or more times such that during at least one portion of the devicelocation duration the mobile device 104 operates in a receive mode todetect signals of the access points 102 a-d operating in a transmitmode. During at least another portion of the device location duration,the mobile device 104 operates in a transmit mode to transmit signalsthat are received by the access points 102 a-d operating in a receivemode. In the illustrated example, each of the mobile device 104 and theaccess points 102 a-d collect signal strength measurements,corresponding device IDs of the sources of the measured signals, andcorresponding timestamps of the times of receipt of the measuredsignals. After saving this information in device location phase logfiles, the mobile device 104 and/or the access points 102 a-d then sendthe log files to the example server 108 for processing. In theillustrated example, the server 108 analyzes the signal strengthmeasurement values in the device location phase log files using a neuralnetwork and generates the signal strength matrix 112. In the illustratedexample, the signal strength matrix 112 is generated by comparing themeasured signal strength values collected when the mobile device waspresent to the AP-only signal strength matrix 110 measured during theAP-only automatic calibration duration. In some examples, when thesignal strength values from the signal strength matrix 112 satisfy athreshold (e.g., the signal strength is greater than a decibel-milliwattpower value) the signal strength value is represented by a (+) symbol.Alternatively, when the signal strength values do not satisfy thethreshold (e.g., the signal strength is less than the threshold), thesignal strength value is represented by a (−) symbol.

In the illustrated example, the signal strength matrix 112 is used togenerate the contour perimeter map 114. However, when the physicalobstruction 106 is present, the neural network can determine that one ormore of the access points 102 a-d is/are unusable to determine thelocation of the mobile device 104 because the signals transmitted bythat one or more of the access points 102 a-d are overly attenuated bythe physical obstruction 106. In the illustrated example, the signalstrength values for access point 102 d have been identified (e.g.,represented by the (−) symbol) as varying beyond a threshold (because ofthe obstruction 106). As a result, the access point 102 d is removedfrom the signal strength matrix 112.

The signal strength values used to train the neural network algorithmare used to generate the contour perimeter map 114 to map thesurrounding areas with contour lines (e.g., contour perimeters A-D)corresponding to the wireless access points 102 a-d in the area. In theillustrated example, the contour map 114 represents contour perimeterdata for each one of the access points 102 a-d based on the signalstrength values from the signal strength matrix 112. To generate thecontour perimeters A-D, the signal strength values from the signalstrength matrix 112 are combined with the known locations of the accesspoints 102 a-d to isolate a point extending from each of the accesspoints 102 a-d representing a point on a boundary of a contourperimeter. A resulting contour perimeter is generated extending the samedistance from that point around the access point. For example, togenerate contour perimeter A, a point may be located at access point 102b to represent the signal strength boundary of access point 102 a. Assuch, contour perimeter A is generated based on the point isolated ataccess point 102 b relative to access point 102 a. Thus, anythingfalling on or within contour perimeter A will be able to receive asignal from access point 102 a (e.g., access point 102 c, mobile device104). In some examples, each device that receives a signal strength froman access point 102 a-d will be used to determine the contour perimeter.In the illustrated example of FIG. 1 , access points 102 b-c may receivea signal from access point 102 a, while access point 102 d may notreceive a signal from access point 102 a. As such, contour perimeter Amay be generated to extend through access points 102 b-c but not throughaccess point 102 d. Additionally, the contour perimeter is the union ofthe individual access points contour perimeters and is dependent uponsignal strength values. As such, contour perimeter A may vary dependingon the devices (e.g., access point, mobile device) that receive a signalstrength value from access point 102 a. For example, if the obstruction106 was not present, access point 102 d may determine a signal strengthvalue for access point 102 a and the contour perimeter A may be extendedto pass through access point 102 d. Alternatively, a second obstructionmay block the transmission path between access point 102 a and accesspoint 102 b. As such, contour perimeter A would be reduced by the secondobstruction to remove the portion passing through access point 102 b. Insome examples, contour perimeters A-D represent locations of devices inwireless communication range of the access points 102 a-d. For example,contour perimeter A passes through access points 102 b-c. As such, thecontour perimeter A identifies the access points 102 b-c as being withinthe wireless communication range of access point 102 a. In theillustrated example, the contour perimeter map 114 is utilized to detectthe location of the mobile device 104 when a direct signal from themobile device 104 to the wireless access point 102 d is blocked by thephysical obstruction 106. Specifically, when the wireless access points102 a-d measure respective signal strength values corresponding to asignal from the mobile device 104, the obstructed contour perimeter 116is generated based on the signal strength matrix 112 to locate themobile device 104 based on the wireless access points 102 a-d.

In the illustrated example, the wireless access point 102 d includessignal strengths that vary unpredictably, as shown by the (−) symbol inthe signal strength matrix 112. In examples disclosed herein, whensignal strengths corresponding to signals from any one of the wirelessaccess points 102 a-d vary unpredictably, that wireless access point 102is dropped from and/or corrected based on the contour perimeter map 114.As such, after dropping and/or correcting the wireless access point 102d in the illustrated example, contour perimeter data for wireless accesspoints 102 a-c are used generate the corrected contour perimeter 118 tolocate the mobile device 104.

In this manner, alternating devices between transmit mode and receivemode for transmitting their corresponding identifiers and receivingidentifiers of other devices is used to provide each device with signalstrength measures corresponding to other device transmissions. Thus, thecontour perimeter map 114 can then determine where obstructions may bepresent relative to other devices based on comparisons of measuredsignal strengths corresponding to the same received signals.

FIG. 2 illustrates an example environment 200 in which the examplemobile device location detection system 100 of FIG. 1 may beimplemented. The example environment 200 includes the access points 102a-d, the mobile device 104, the physical obstruction 106, the obstructedcontour perimeter 116, the corrected contour perimeter 118 and a user202.

In the illustrated example, the user 202, carrying the mobile device104, enters the example environment 200 and begins walking around. Inthis example, the environment is a grocery store. The access points 102a-d and the mobile device 104 begin alternating receive modes andtransmit modes to track the locations of the user 202 in the environment200.

In the illustrated example, the wireless access points 102 a-d arestationarily located at corresponding fixed locations. Prior to the user202 entering the environment 200, the access points 102 a-d operate inan AP-only calibration mode during an AP-only calibration duration. Thewireless access points 102 a-d alternate between transmit and receivemodes to measure signal strengths between one another. For example, theaccess points 102 a-d may use wireless discovery communications such asprobe requests and probe responses. At the conclusion of the AP-onlycalibration duration, the access points 102 a-d transmit AP-onlycalibration log files to the server 108 of FIG. 1 . The AP-onlycalibration log files include device IDs (e.g., SSIDs) of transmittingones of the access points 102 a-d and corresponding signal strengthmeasurements collected during the AP-only calibration duration. Theexample server 108 analyzes the signal strength measurements from thelog files and generates an example AP-only signal strength matrix 110(FIG. 1 ) for the access points 102 a-d. The example AP-only signalstrength matrix 110 for the access points 102 a-d is used to train aneural network that can more effectively locate the mobile device 104when near the access points 102 a-d.

To locate the user 202, the mobile device 104 and the access points 102a-d alternate between receive mode and transmit mode one or more timessuch that during at least one portion of a device location duration themobile device 104 operates in a receive mode to detect signals of theaccess points 102 a-d operating in a transmit mode. During at leastanother portion of the device location duration, the mobile device 104operates in a transmit mode to transmit signals that are received by theaccess points 102 a-d operating in a receive mode. For example, theaccess points 102 a-d and the mobile device 104 can use wirelessdiscovery communications such as probe requests and probe responses.Each of the mobile device 104 and the access points 102 a-d collectsignal strength measurements, corresponding device IDs of the sources ofthe measured signals, and corresponding timestamps of the times ofreceipt of the measured signals. After saving this information in devicelocation phase log files. The mobile device 104 and/or the access points102 a-d then send the log files to the example server 108 forprocessing.

The example data collection server 108 analyzes the signal strengthvalues from the log files to generate the contour perimeter map 114(FIG. 1 ), which maps the environment 200 with contour perimeters A-Dcorresponding to the wireless access points 102 a-d in the environment200. The contour perimeter map 114 is utilized to determine the locationof the mobile device 104 in the presence of the physical barrier 106(e.g., a display).

In the illustrated example, the user 202 is near (e.g., adjacent) thephysical barrier 106 (e.g., a product display, store shelving, etc.)during the device location duration. For example, the user 202 may belooking at or selecting a product. As such, the access point 102 d isobstructed from the mobile device 104 by the physical barrier 106. As aresult, when the data collection server 108 analyzes the signalstrengths at the conclusion of the device location duration, the firstcontour perimeter 116 that is generated incorrectly identifies thelocation of the physical barrier 106 as the location of the mobiledevice 104. In a similar manner as FIG. 1 , the server 108 identifiesunsuitably varying signals from the access point 102 d and drops theaccess point 102 d from the contour perimeter map 114. For example, thesignals from the access point 102 d are not suitable because theyattenuate unpredictably because of the physical barrier 106. As such,the corrected contour perimeter d 118 is generated to properly identifythe location of the mobile device 104, and, in turn, the user 202. Forexample, the server 108 generates the corrected contour perimeter d 118by selecting known contour perimeter data for access point 102 d thatwas calculated during the calibration phase and calculating thecorrected contour perimeter d 118 based on the known contour perimeterdata for access point 102 d.

FIG. 3 illustrates an example mobile device location system 300 that maybe used to implement examples disclosed herein. The example mobiledevice location system 300 includes an access point 102 (asrepresentative of the access points 102 a-d of FIGS. 1 and 2 ), themobile device 104, the server 108, a network 302, and a log store 303.The example access point 102 includes an example transceiver 304, anexample data collector 306, an example timer 308, an example counter309, and an example log generator 310. The mobile device 104 of theillustrated example includes an example transceiver 312, an example datacollector 314, an example timer 316, an example counter 317, and anexample log generator 318. The example server 108 includes an exampledata interface 319, an example signal strength analyzer 320, an examplesignal strength matrix generator 322, an example neural network 324, andan example contour perimeter generator 326, and an example locationdeterminer 328.

The example network 302 of the illustrated example is a wired orwireless network suitable for communicating information between theaccess point 102, the mobile device 104, and the server 108. The examplenetwork 302 may be implemented using a local area network and/or a widearea network (e.g., the Internet). However, any type(s) of past,current, and/or future communication network(s), communicationsystem(s), communication device(s), transmission medium(s), protocol(s),technique(s), and/or standard(s) could be used to communicatively couplethe components via any type(s) of past, current, and/or futuredevice(s), technology(ies), and/or method(s), including voice-bandmodems(s), digital subscriber line (DSL) modem(s), cable modem(s),Ethernet transceiver(s), optical transceiver(s), virtual private network(VPN) connection(s), Institute of Electrical and Electronics Engineers(IEEE) 802.11x (e.g., WiFi) transceiver(s), IEEE 802.16 (e.g., WiMax,ZigBee), access point(s), access provider network(s), etc. Further, theexample network 104 may be implemented by one or a combination(s) of anyhardwire network, any wireless network, any hybrid hardwire and wirelessnetwork, a local area network, a wide area network, a mobile devicenetwork, a peer-to-peer network, etc. . . . For example, a first networkmay connect the access points 102 to the server 108, and a secondnetwork may connect the mobile device 104 to the server 108.

The example log store 303 is used to store log files from the server108. As discussed in more detail below, the server 108 receives the logfiles from the access point 102 and the mobile device 104.

The example transceiver 304 is used to receive wireless signals fromother access points/mobile devices and transmit signals to other accesspoints/mobile devices within the area during an AP-only calibrationphase, and during a device location phase. The example transceiver 304may be implemented using any suitable wireless technology such asBluetooth, Wi-Fi, ZigBee, WiMax, etc.

The data collector 306 of the illustrated example collects data relatingto the signals received by the transceiver 304 and manages datacollection processes. For example, when the access point 102 operates inthe receive mode, the data collector 306 collects timestamps, ServiceSet Identifiers (SSID) of transmitting access points, identifiers (e.g.,Universal Device ID (UDID), Identifier For Advertising (IDFA),Identifier For Vendor (IDFV), Android ID, device name, media accesscontrol (MAC) address, etc.) of transmitting mobile devices 104, andsignal strengths (e.g., in dBm) of received signals from the mobiledevices 104 and the other wireless access points 102 for a first periodof time during a device location duration. The wireless access point 102then switches to transmit mode and broadcasts its SSID (e.g., AP123) fora second period of time during the device location duration. The datacollector 306 collects transition timestamps to indicate when the accesspoint 102 switched between receive mode and transmit mode. At theconclusion of the device location duration, the data collector 306 sendsall of the collected data to the example log generator 310 for furtherprocessing.

The example timer 308 is provided to control durations for receiving andtransmitting signals. For example, when managing data collection, thedata collector 306 or a processor of the access point 102 uses the timer308 to track a duration for which the access point 102 operates in areceive mode for a first period of time during an AP-only calibrationduration, and a transmit mode for a second period of time during theAP-only calibration duration.

The example counter 309 is provided to control how many AP-onlycalibration durations occur during an AP-only calibration phase, and howmany device location durations occur during a device location phase. Forexample, the timer 308 runs for a designated period of time during anAP-only calibration phase. During the AP-only calibration phase, thecounter 309 tracks the number of AP-only calibration durations that haveoccurred during the AP-only calibration phase, for example. As such,when the example data collector 306 or processor determines that a firstAP-only calibration duration has ended, the example data collector 306or processor resets the timer 308 for the second AP-only calibrationduration and increments the counter 309 corresponding to the completedfirst AP-only calibration duration. The process continues until the datacollector 306 or processor determines that the counter 309 equals anumber of AP-only calibration durations to be performed.

The example log generator 310 groups the collected data from the datacollector 306 into AP-only collected data and mobile device collecteddata. For example, the log generator 310 parses through all of thecollected data and identifies if the collected data belongs to an accesspoint or a mobile device and separates the collected data accordingly.The example log generator 310 groups the data by device to identifywhich signals were collected during the AP-only calibration phase andwhich signals were collected during the device location phase.

The example log generator 310 generates a log file for the groupedsignal data to send to the server 108. For example, the log generator310 generates individual records for each of the signals includingdevice identifiers, timestamps and signal strengths. Additionally, thelog generator 310 creates a number of records in the log files toindicate when the mobile device 104 and access points 102 switched fromreceive mode to transmit mode and when they switched from transmit modeto receive mode. Alternatively, the log generator 310 may create aseparate log file indicating when the mobile device 104 and the accesspoints 102 switched from receive mode to transmit mode and when theyswitched from transmit mode to receive mode. At the conclusion of thedevice location phase, the log generator 310 transmits all of the logfiles to the data collection server 108 via the network 302. Althoughthe example log generator 310 is shown in the access point 102, in otherexamples the example log generator 310 may be implemented at the exampleserver 108.

In the illustrated example, the transceiver 312, the data collector 314,the timer 316, the counter 317, and the log generator 318 of the mobiledevice 104 operate in a similar manner as the transceiver 304, the datacollector 306, the timer 308, the counter 309, and the log generator310, respectively, of the access points 102, as described above.Although the example log generator 318 is shown in the mobile device104, in other examples the log generator 318 may be implemented at theexample server 108.

The example data interface 319 of the server 108 receives the log filesfrom the access point 102 and the mobile device 104. In the illustratedexample, the data interface 319 stores the log files in the log store303. Also in the illustrated example, the data interface 319 accessesdata from the log files. For example, the data interface 319 may accessdata for an AP-only calibration phase or may access data for a devicelocation phase.

At the example data collection server 108, the example signal strengthanalyzer 320 accesses the log files from the log generator 310 andanalyzes the signal strength measurements from the log files to identifyif the signal strength values satisfy a threshold (e.g., determineswhether each signal strength is greater than a thresholddecibel-milliwatt power value). In some examples, the signal strengthanalyzer 320 may be able to identify the timestamps belonging to aspecific time period. For example, the signal strength analyzer 320 mayidentify the timestamps collected during an AP-only calibration phaseand subsequently analyze signal strengths for all of the access points102 a-d corresponding to the AP-only calibration phase. Alternatively,the signal strength analyzer 320 may identify signals corresponding to adevice location phase. As such, the signal strength analyzer 320 mayanalyze the signals received by the access points 102 a-d and the mobiledevice 104 during the device location phase. The signal strengthanalyzer 320 analyzes the signal strength values in the log files andidentifies if the signal strength values satisfy a threshold.

The example signal strength matrix generator 322 accesses the log filesfrom the signal strength analyzer 320, along with indications of whetherthe signal strength values satisfy a threshold. The example signalstrength matrix generator 322 separates or parses the data from the logfiles based on device identifiers. For example, the signal strengthmatrix generator 322 identifies the access point 102 a (FIGS. 1 and 2 )and the signals received by the access point 102 a. The signal strengthmatrix generator 322 populates a signal strength matrix (e.g., thesignal strength matrix 112 of FIG. 1 ) using the data from the signalstrength analyzer 320 (e.g., indications of whether the signal strengthvalues satisfy the threshold). When the example signal strength analyzer320 identifies a signal strength value as satisfying the threshold, theexample signal strength matrix generator 322 populates a correspondingposition in a signal strength matrix with a (+) symbol. When the examplesignal strength analyzer 320 identifies a signal strength value as notsatisfying the threshold, the example signal strength matrix generator322 populates a corresponding position in the signal strength matrixwith a (−) symbol. In examples disclosed herein, the example signalstrength matrix generator 322 generates an AP-only calibration signalstrength matrix (e.g., the signal strength matrix 110 of FIG. 1 ) and adevice location signal strength matrix (e.g., the signal strength matrix112 of FIG. 1 ). The example signal strength matrix generator 322 sendsthe signal strength matrices to the neural network 324 for furtherprocessing.

To train the example neural network 324, the signal strength matrixgenerator 322 sends the AP-only calibration signal matrix (e.g., thesignal strength matrix 110) as input to the neural network 324. Theneural network 324 processes the AP-only calibration signal matrix alongwith the known locations of the access points 102 a-d, and identifiesattenuation factors (e.g., attenuation multipliers) associated with thesignal strength values. For example, the neural network 324, locates thesignal strength values identified with a (+) symbol and associates thosesignal strength values as satisfactory. Over time, the neural network324 accumulates signal strength values from signal strength matrices andidentifies an attenuation factor for a specific transmission path (e.g.,access point 102 a transmitting a signal to access point 102 b). Assuch, the neural network 324 is able to identify an attenuation factortolerance associated with specific transmission paths. For example, theneural network 324 may determine a lower threshold attenuation factorthat is lower than the expected attenuation factor (e.g., an attenuationfactor that results in a stronger signal strength value). The neuralnetwork 324 may also determine an upper threshold attenuation factorthat is higher than the expected attenuation factor (e.g., anattenuation factor that results in a weaker signal strength value). Theneural network 324, uses the above lower to upper threshold attenuationfactor range as an attenuation factor tolerance of acceptable signalstrength values. For example, when the neural network 324 identifiessignal strengths corresponding to attenuations lower than the upperthreshold attenuation factor, the neural network 324 identifies thesignal strength values as acceptable. Additionally, when the neuralnetwork 324 identifies signal strengths corresponding to attenuationshigher than the lower threshold attenuation factor, the neural network324 analyzes the signal strength matrix to determine if the signalstrength matrix threshold was satisfied (e.g., is the transmission pathpopulated with a (+) symbol). If the signal strength matrix thresholdwas satisfied, the neural network 324 identifies the signal strengthvalues as acceptable. Therefore, the neural network 324 allowsattenuation factors to vary within the attenuation factor tolerance. Inthis manner, the neural network 324 uses the attenuation factortolerance to identify any attenuation factors of specific transmissionpaths that vary unpredictably. For example, the neural network 324 mayidentify an attenuation factor that falls outside of the attenuationfactor tolerance for a specific transmission path. As such, the neuralnetwork 324 may correct the signal strength value or identify thespecific transmission path as obstructed and not useful in generatingcontour perimeters (e.g., the contour perimeters a-d of FIGS. 1 and 2 ).

In some examples, the contour perimeter generator 326 generates acontour perimeter based on the data received from the neural network324. For example, the neural network 324 may identify that an accesspoint is obstructed because of an attenuation factor outside of theattenuation factor tolerance (e.g., not satisfying the attenuationfactor tolerance) for a specific transmission path. As such, the contourperimeter generator 326 may determine a point in space for a givenaccess point using known signal strength distance algorithms. Once thecontour perimeter generator 326 determines a point in space, the contourperimeter generator 326 may extend that point around the perimeter ofthe access point. The contour perimeter generator 326 repeats theprocess until all the access points have contour perimeters. In someexamples, the contour perimeter generator 326 may determine a pluralityof points located around the access point and determine the contourperimeter based on the identified points. For example, the contourperimeter generator 326 may identify points at access point 102 c andthe mobile device 104. As such, the contour perimeter generator 326 maygenerate a contour perimeter extending through the access point 102 cand the mobile device 104, but not through access point 102 b or accesspoint 102 d.

The location determiner 328 determines the location of the mobile device104 using the generated contour perimeters generated by the contourperimeter generator 326 (e.g., the contour perimeters A-D of FIGS. 1 and2 ). For example, the location determiner 328 may identify a union ofall the generated contour perimeters and determine the location of themobile device 104 based on the union. In some examples, the locationdeterminer 328 may implement a trilateration method to locate the mobiledevice 104 based on the generated contour perimeters.

While an example manner of implementing the example access point 102,the example mobile device 104, and the example server 108 of the examplemobile device location detection system 100 FIG. 1 is illustrated inFIG. 3 , one or more of the elements, processes and/or devicesillustrated in FIG. 3 may be combined, divided, re-arranged, omitted,eliminated and/or implemented in any other way. Further, the exampledata collector 306, the example timer 308, the example counter 309, theexample log generator 310, and/or, more generally, the example accesspoint 102, and/or the example data collector 314, the example timer 316,the example counter 317, the example log generator 318 and/or, moregenerally, the example mobile device 104, and/or the example datainterface 319, the example signal strength analyzer 320, the examplesignal strength matrix generator 322, the example neural network 324,the example contour perimeter generator 326, the example locationdeterminer 328 and/or, more generally, the example server 108 of FIG. 3may be implemented by hardware, software, firmware and/or anycombination of hardware, software and/or firmware. Thus, for example,any of the example data collector 306, the example timer 308, theexample counter 309, the example log generator 310 of the example accesspoint 102, the example data collector 314, the example timer 316, theexample counter 317, the example log generator 318 of the example mobiledevice 104, the example data interface 319, the example signal strengthanalyzer 320, the example signal strength matrix generator 322, theexample neural network 324, the example contour perimeter generator 326,the example location determiner 328 of the example server 108 and/or,more generally, the example access point 102, the example mobile device104, and/or the example server 108 could be implemented by one or moreanalog or digital circuit(s), logic circuits, programmable processor(s),application specific integrated circuit(s) (ASIC(s)), programmable logicdevice(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)).When reading any of the apparatus or system claims of this patent tocover a purely software and/or firmware implementation, at least one ofthe example data collector 306, the example timer 308, the examplecounter 309, the example log generator 310 of the example access point102, the example data collector 314, the example timer 316, the examplecounter 317, the example log generator 318 of the example mobile device104, the example data interface 319, the example signal strengthanalyzer 320, the example signal strength matrix generator 322, theexample neural network 324, the example contour perimeter generator 326,the example location determiner 328 of the example server 108 and/or,more generally, the example access point 102, the example mobile device104, and/or the example server 108 is/are hereby expressly defined toinclude a non-transitory computer readable storage device or storagedisk such as a memory, a digital versatile disk (DVD), a compact disk(CD), a Blu-ray disk, etc. including the software and/or firmware.Further still, the example access point 102, the example mobile device104, and/or the example server 108 may include one or more elements,processes and/or devices in addition to, or instead of, thoseillustrated in FIG. 3 , and/or may include more than one of any or allof the illustrated elements, processes and devices.

FIG. 4 is an example receive/transmit log file 400 that may beimplemented using the examples disclosed herein. Log files similar tothe example log file 400 may be generated by the access points 102 a-dand the mobile device 104 of FIGS. 1-3 . The example log file 400includes a first transmitter mode marker 401, a first transitiontimestamp 402, first receiver mode duration section 403, a receivedsignals log entries 404, a second transition timestamp 405, secondtransmitter mode marker section 406, a third transition timestamp 407,and a second receiver mode duration section 408. In the illustratedexample, the first transmitter mode marker 401 indicates that a deviceis in transmitter mode. The first transition timestamp 402 identifiesthat a transmitter mode corresponding to the first transmitter modemarker 401 has ended and the device switches to receive mode. The firstreceiver mode duration section 403 identifies signal receptioninformation that the device receives. Received signals log entries 404include timestamps, device identifiers and signal strength values forthe signals received during a first receiver mode duration correspondingto the first receiver mode duration section 403. The second transitiontimestamp 405 identifies that the first receiver mode duration hasended, and a second transmitter mode corresponding to the secondtransmitter mode marker 406 has begun. The third transition timestamp407 indicates when the device switches back to receive mode for a secondreceiver mode duration corresponding to the second receiver modeduration section 408. In the illustrated example, the log file 400includes records for the signal reception information and transitiontimestamps. Alternatively, the signal reception information may bestored in one log file and the transition timestamps may be stored in asecond log file.

Flowcharts representative of example machine readable instructions forimplementing the example access points 102 a-d, the example mobiledevice 104, and the example server 108 of FIGS. 1-3 are shown in FIGS.5-9 . In these examples, the machine readable instructions comprise oneor more programs for execution by one or more processors such as theprocessor 1012 shown in the example processor platform 1000 discussedbelow in connection with FIG. 10 . The program(s) may be embodied insoftware stored on a non-transitory computer readable storage mediumsuch as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk(DVD), a Blu-ray disk, or a memory associated with the processor 1012,but the entireties of the programs and/or parts thereof couldalternatively be executed by a device other than the processor 1012and/or embodied in firmware or dedicated hardware. Further, although theexample program(s) is/are described with reference to the flowchartsillustrated in FIGS. 5-9 , many other methods of implementing theexample access points 102 a-d, the example mobile device 104, and theexample server 108 of FIGS. 1-3 may alternatively be used. For example,the order of execution of the blocks may be changed, and/or some of theblocks described may be changed, eliminated, or combined. Additionallyor alternatively, any or all of the blocks may be implemented by one ormore hardware circuits (e.g., discrete and/or integrated analog and/ordigital circuitry, a Field Programmable Gate Array (FPGA), anApplication Specific Integrated circuit (ASIC), a comparator, anoperational-amplifier (op-amp), a logic circuit, etc.) structured toperform the corresponding operation without executing software orfirmware.

As mentioned above, the example processes of FIGS. 5-9 may beimplemented using coded instructions (e.g., computer and/or machinereadable instructions) stored on a non-transitory computer and/ormachine readable medium such as a hard disk drive, a flash memory, aread-only memory, a compact disk, a digital versatile disk, a cache, arandom-access memory and/or any other storage device or storage disk inwhich information is stored for any duration (e.g., for extended timeperiods, permanently, for brief instances, for temporarily buffering,and/or for caching of the information). As used herein, the termnon-transitory computer readable medium is expressly defined to includeany type of computer readable storage device and/or storage disk and toexclude propagating signals and to exclude transmission media.“Including” and “comprising” (and all forms and tenses thereof) are usedherein to be open ended terms. Thus, whenever a claim lists anythingfollowing any form of “include” or “comprise” (e.g., comprises,includes, comprising, including, etc.), it is to be understood thatadditional elements, terms, etc. may be present without falling outsidethe scope of the corresponding claim. As used herein, when the phrase“at least” is used as the transition term in a preamble of a claim, itis open-ended in the same manner as the term “comprising” and“including” are open ended.

FIG. 5 is an example flowchart representative of machine readableinstructions that may be executed to implement the access points 102 a-dand/or the mobile device 104 of FIGS. 1-3 to generate log files (e.g.,the log file 400 of FIG. 4 ) of signals broadcasted in an area. Theprogram of FIG. 5 begins at block 500 when the example timer 308 startsfor a receiver mode duration (e.g., a receiver mode of a device locationphase). For example, the data collector 306 or a processor may programthe timer 308 for a duration of the receiver mode of the device locationphase. The example data collector 306 collects signal information ofsignals broadcasted in the area by other wireless devices (block 502).For example, the data collector 306 collects signals received by thetransceiver 304 from other access points 102 in the area. An exampleprocess that may be used to implement block 502 is described below inconnection with FIG. 6 . The example timer 308 determines if thereceiver mode duration is over (block 504). For example, when the timer306 expires, the timer 306 identifies that the receiver mode of thedevice location phase has ended. If the receiver mode duration is notover, the example data collector 306 continues to collect signalinformation of signals broadcasted in the area (block 502). If thereceiver mode duration is over, the example data collector 306timestamps the conclusion of the receiver mode duration (block 506). Forexample, the data collector 306 stores the second transition timestamp405 in the log file 400 of FIG. 4 . The example timer 308 starts for thetransmitter mode duration (e.g., a transmit mode of the device locationphase) (block 508). For example, the data collector 306 or a processormay program the timer 308 for the transmitter mode duration. During thetransmitter mode duration, the example transceiver 304 broadcasts aunique identifier of the access point 102 (block 510). For example, thedata collector 306 broadcasts the SSID of the access point 102 to otherwireless devices via the transceiver 304. The timer 308 determines ifthe transmitter mode duration is over (block 512). For example, when thetimer 308 expires, the data collector 306 or the processor identifiesthat the transmitter mode for the device location phase has ended. Ifthe transmitter mode duration is not over, the example transceiver 304continues to broadcast the unique identifier (block 510). If thetransmitter mode duration is over, the example data collector 306timestamps the conclusion of the transmitter mode duration (block 514).For example, the data collector 306 stores the third transitiontimestamp 407 in the log file 400 of FIG. 4 . At block 516 the loggenerator 310 groups the collected data and generates log files. Forexample, the log generator 310 generates the received signals logentries 404 of the log file 400 of FIG. 4 . A communications interfaceof the access point 102 sends the log file 400 to the server 108 (block518). The example process of FIG. 5 then ends.

FIG. 6 is a flowchart representative of example machine readableinstructions that may be executed to implement the processes of block502 to collect signals broadcasted in an area. The program of FIG. 6begins at block 602 when the example data collector 306 monitors forbroadcasted signals. Next the example data collector 306 determines ifany signals have been received (block 604). For example, the datacollector 306 identifies if any wireless signals from other devices havebeen received via the transceiver 304 (FIG. 3 ) of the access point 102.If no signals have been received, the data collector 306 continues tomonitor for broadcasted signals (block 602). If a signal is received,the example data collector 306 collects a unique identifier (block 606).For example, the data collector 306 collects a unique identifier of thetransmitting device. The data collector 306 measures a signal strength(block 608). For example, the data collector 306 measures the signalstrength in dBm. The example data collector 306 generates a timestampfor the collected data (block 610). For example, the data collector 306generates a timestamp indicative of when the signal was received. Theexample data collector 306 generates an entry for the unique identifier(block 612). For example, the data collector 306 stores the uniqueidentifier, the signal strength and the timestamp together in acorresponding log entry of the received signals log entries 404 of FIG.4 . The process of FIG. 6 then returns to block 504.

FIG. 7 is an example flowchart representative of machine readableinstructions that may be executed to implement the server 108 of FIGS.1-3 to generate contour perimeters (e.g., the contour perimeters A-D ofFIGS. 1 and 2 ). The program of FIG. 7 begins when the example signalstrength analyzer 320 receives log files from the access points 102 a-dand the mobile device 104 (block 700). For example, the signal strengthanalyzer 320 receives log files similar to the log file 400 of FIG. 4 .The example signal strength analyzer 320 determines what signal strengthvalues satisfy a power value threshold (block 702). For example, thesignal strength analyzer 320 determines what signal strength valuesrecorded in the log files are greater than a threshold dBm power value.The example signal strength matrix generator 322 generates a signalstrength matrix for analyzed data (block 704). For example, the signalstrength matrix generator 322 uses the analyzed data from the log filesand the threshold determination from the signal strength analyzer 320 ofblock 720 to populate a matrix with the analyzed data similar to thesignal strength matrices 110 and 112 of FIG. 1 . The example neuralnetwork 324 determines if the signal strength values satisfy anattenuation factor range (block 706). For example, the neural network324 determines if the signal strength values are within an attenuationfactor tolerance (e.g., defined by upper and lower threshold attenuationfactors) for a specific transmission path stored in the neural network324. If the signal strength values do not satisfy the attenuation factorrange, the neural network 324 removes devices from the signal strengthmatrix 112 with signal strength values not satisfying the attenuationfactor range (block 708). For example, the neural network 324 mayidentify that an attenuation factor for a transmission path from theaccess point 102 a to the access point 102 d is outside of theattenuation factor tolerance for that transmission path. Additionally,the neural network 324 may identify the attenuation factor for atransmission path from the access point 102 d to the mobile device 104is outside of the attenuation factor tolerance for that transmissionpath. Further, the neural network 324 may identify that an attenuationfactor for a transmission path from the access point 102 a to the mobiledevice 104 is within the attenuation factor tolerance for thattransmission path. As such, the neural network 324 may remove the accesspoint 102 d from the signal strength matrix 112 from further processing.If the signal strength values satisfy the attenuation factor range, orafter the neural network 324 removes device(s) and correspondingunacceptable signal strength values from the signal strength matrix 110at block 708, control advances to block 710. The contour perimetergenerator 326 generates contour perimeters based on the signal strengthvalues that satisfy the threshold (block 710). The example process ofFIG. 7 ends.

FIG. 8 is an example flowchart representative of machine readableinstructions that may be executed to implement the example mobile devicelocation detection systems of FIGS. 1 and 3 , and to perform theprocesses of FIG. 7 to generate contour perimeters. The example processbegins at block 802 when the contour perimeter generator 326 receivesthe signal strength value matrix 110 from the neural network 324. Theexample contour perimeter generator 326 determines a boundary pointbased on the signal strength values (block 804). For example, thecontour perimeter generator 326 may identify a distance from the knownlocation of an access point based on the signal strength to isolate theboundary point. The example contour perimeter generator 326 generates acontour perimeter based on the boundary point (block 806). For example,the contour perimeter generator 326 may extend a boundary around anaccess point based on the identified boundary point. The process of FIG.8 returns to block 710.

FIG. 9 is an example flowchart representative of machine readableinstructions that may be executed to implement a computer (e.g., theserver 108 of FIGS. 1-3 ) to correct the physical location of the mobiledevice 104 of FIGS. 1-3 . The program of FIG. 9 begins at block 902 whenthe data interface 319 stores first signal data collected at the mobiledevice 104. For example, the first signal data corresponds to firstsignals received at the mobile device 104 from the access points 102 a-dfor a first period of time (e.g., a first receiver mode duration). Inthe illustrated example, the data interface 319 stores the first signaldata in the form of log files 400 in the log store 303 of FIG. 3 . Atblock 904, the data interface 319 stores second signal data collected ata receiving one of the plurality of access points 102 a-d. For example,the second signal data corresponds to second signals received from themobile device 104 and transmitting ones of the plurality of accesspoints 102 a-d for a second period of time (e.g., a second receiver modeduration). At block 906, the signal strength matrix generator 322generates an access point signal matrix (e.g., the signal strengthmatrix 112 of FIG. 1 ). For example, the signal strength matrixgenerator 322 generates the access point signal strength matrix based onsignal strength values from the first signal data collected at a mobiledevice 104 corresponding to first signals received from a plurality ofaccess points 102 a-d for a first period of time, and from second signaldata collected at the plurality of access points 102 a-d correspondingto second signals received from the mobile device 104 and the pluralityof access points 102 a-d for a second period of time. At block 908, thecontour perimeter generator 326 determines a first group of contourperimeters (e.g., the contour perimeters A-D of FIGS. 1 and 2 ). Forexample, the contour perimeter generator 326 determines a first group ofcontour perimeters corresponding to first ones of the signal strengthvalues in the access point signal matrix 112 that satisfy a firstthreshold, the first group of contour perimeters including an obstructedcontour perimeter (e.g., obstructed contour perimeter D 116)corresponding to second ones of the signal strength values in the accesspoint signal matrix that do not satisfy the first threshold. At block910, the neural network 324 and the contour perimeter generator 326determine a second group of contour perimeters. For example, the neuralnetwork 324 and the contour perimeter generator 326 determine a secondgroup of contour perimeters by replacing the obstructed contourperimeter (e.g., obstructed contour perimeter D 116 of FIG. 1 ) with acorrected contour perimeter (e.g., corrected contour perimeter D 118 ofFIG. 1 ). At block 912, the location determiner 328 determines alocation of the mobile device 104. For example, the location determiner328 determines a location of the mobile device 104 based on the secondgroup of contour perimeters including the corrected contour perimeter.The location is the union of the resulting contour perimeters of eachaccess point 102 a-d that received a signal from the mobile device 104.For example, when each access point 102 a-d receives the signal from themobile device 104, each access point 102 a-d measures the signalstrength value of the received signal from the mobile device 104. Insome examples, the signal strength measurement is a value and not avector. The example location determiner 328 determines contourperimeters for the access points 102 a-d based on the known locations ofthe access points 102 a-d and the signal strengths received fromtransmitting ones of access points 102 a-d and signals transmitted toreceiving ones of access points 102 a-d. To determine the location ofthe mobile device 104, the example location determiner 328 determinesthe intersection of the resulting contour perimeters generated based onthe received signal strengths of the mobile device 104. The intersectionis identified as the physical location of the mobile device 104. Theexample process of FIG. 9 ends.

FIG. 10 is a block diagram of an example processor platform 1000 capableof executing the instructions of FIGS. 5-9 to implement the exampleaccess points 102 a-d, the example mobile device 104, and the exampleserver 108 of FIGS. 1-3 . The processor platform 1000 can be, forexample, a server, a personal computer, a mobile device (e.g., a cellphone, a smart phone, a tablet such as an iPad™), a personal digitalassistant (PDA), an Internet appliance, a DVD player, a CD player, adigital video recorder, a Blu-ray player, a gaming console, a personalvideo recorder, a set top box, or any other type of computing device.

The processor platform 1000 of the illustrated example includes aprocessor 1012. The processor 1012 of the illustrated example ishardware. For example, the processor 1012 can be implemented by one ormore integrated circuits, logic circuits, microprocessors or controllersfrom any desired family or manufacturer. The hardware processor may be asemiconductor based (e.g., silicon based) device. In this example, theprocessor implements the example data collector 306, the example timer308, the example counter 309, the example log generator 310 of theexample access point 102, the example data collector 314, the exampletimer 316, the example counter 317, the example log generator 318 of theexample mobile device 104, the example data interface 319, the examplesignal strength analyzer 320, the example signal strength matrixgenerator 322, the example neural network 324, the example contourperimeter generator 326, the example location determiner 328 of theexample server 108 and/or, more generally, the example access point 102,the example mobile device 104, and/or the example server 108

The processor 1012 of the illustrated example includes a local memory1013 (e.g., a cache). The processor 1012 of the illustrated example isin communication with a main memory including a volatile memory 1014 anda non-volatile memory 1016 via a bus 1018. The volatile memory 1014 maybe implemented by Synchronous Dynamic Random Access Memory (SDRAM),Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory(RDRAM) and/or any other type of random access memory device. Thenon-volatile memory 1016 may be implemented by flash memory and/or anyother desired type of memory device. Access to the main memory 1014,1016 is controlled by a memory controller.

The processor platform 1000 of the illustrated example also includes aninterface circuit 1020. The interface circuit 1020 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), and/or a PCI express interface.

In the illustrated example, one or more input devices 1022 are connectedto the interface circuit 1020. The input device(s) 1022 permit(s) a userto enter data and commands into the processor 1012. The input device(s)can be implemented by, for example, an audio sensor, a microphone, acamera (still or video), a keyboard, a button, a mouse, a touchscreen, atrack-pad, a trackball, isopoint and/or a voice recognition system.

One or more output devices 1024 are also connected to the interfacecircuit 1020 of the illustrated example. The output devices 1024 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay, a cathode ray tube display (CRT), a touchscreen, a tactileoutput device, a printer and/or speakers). The interface circuit 1020 ofthe illustrated example, thus, typically includes a graphics drivercard, a graphics driver chip or a graphics driver processor.

The interface circuit 1020 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem and/or network interface card to facilitate exchange of data withexternal machines (e.g., computing devices of any kind) via a network1026 (e.g., an Ethernet connection, a digital subscriber line (DSL), atelephone line, coaxial cable, a cellular telephone system, etc.).

The processor platform 1000 of the illustrated example also includes oneor more mass storage devices 1028 for storing software and/or data.Examples of such mass storage devices 1028 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, RAIDsystems, and digital versatile disk (DVD) drives.

The coded instructions 1032 of FIGS. 5-9 may be stored in the massstorage device 1028, in the volatile memory 1014, in the non-volatilememory 1016, and/or on a removable tangible computer readable storagemedium such as a CD or DVD.

From the foregoing, it will be appreciated that example methods,apparatus have been disclosed for locating mobile devices using wirelesssignals in mixed mode. Prior methods for determining physical locationsof a mobile device use a one-way signal from an access point to themobile device. This becomes problematic when the line of sight betweenthe access point and the mobile device is obstructed by a radiofrequency attenuating obstruction. For example, the mobile device may becarried by a user walking in a mall. The user may enter a first storewhere the line of sight from the mobile device to an access point isobstructed by a signal-attenuating object. Additionally, the mobiledevice may be in the line of sight of another access point located in asecond, neighboring store. In this example, the mobile device isidentified as located within the second, neighboring store, even thoughthe mobile device is located in the first store. For entities thatmonitor shopping habits of individuals, this is a problem because storesthat were never visited are credited as having been visited. Examplesdisclosed herein use alternating receive modes and transmit modesbetween mobile devices and access points to track the locations ofpersons in areas in which signal-attenuating obstructions between themobile devices and the access points substantially decrease or preventuseful wireless communications between the devices. For example, themobile device may be carried by a user walking in a mall. The user mayenter a first store where the line of sight from the mobile device to anaccess point is obstructed by an object. Additionally, the mobile devicemay be in the line of sight of another access point located in a second,neighboring store. The examples disclosed herein provide for wirelessdevices to operate in receive mode and transmit mode for a devicelocation phase. As such, the mobile device receives wireless signalsfrom a plurality of access points in the first store and transmitswireless signals to the plurality of access points in the first storefor the device location phase. The disclosed examples identify anobstruction between the mobile device and one of the plurality of accesspoints in the first store and can correctly identify the device locationbased on identifying the pressure of the obstruction. Thus, the mobiledevice is correctly identified as being in the first store.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. A mobile device comprising: a transceiver to:operate in a transmit mode during a first period of time to transmitfirst signals to be received by a plurality of access points; andoperate in a receive mode during a second period of time to receivesecond signals from the plurality of access points; log generatorcircuitry to log device identifiers of the plurality of access points inassociation with signal strengths of corresponding ones of the secondsignals; and interface circuitry to send the device identifiers and thesignal strengths to a server, the device identifiers and the signalstrengths to facilitate processes at the server to: (a) train a neuralnetwork, (b) generate a corrected contour map associated with theplurality of access points based on the neural network, and (c)determine a location of the mobile device based on the corrected contourmap.
 2. The mobile device of claim 1, wherein the signal strengths arefirst signal strengths, the first signals associated with second signalstrengths at the plurality of access points, the interface circuitry tosend the device identifiers and the first signal strengths to the serverto facilitate the processes at the server to train the neural networkbased on the first and second signal strengths.
 3. The mobile device ofclaim 1, wherein the device identifiers are service set identifiers. 4.The mobile device of claim 1, wherein the log generator circuitry is tolog a timestamp to indicate a time at which the mobile device switchesbetween the receive mode and the transmit mode.
 5. The mobile device ofclaim 1, wherein, during the transmit mode, the transceiver is totransmit at least one of a universal device identifier, an identifierfor advertising, an identifier for vendor, an Android identifier, adevice name, or a media access control address, the at least one of theuniversal device identifier, the identifier for advertising, theidentifier for vendor, the Android identifier, the device name, or themedia access control address to identify the mobile device.
 6. Themobile device of claim 1, further including a timer to control the firstperiod of time and the second period of time.
 7. An apparatuscomprising: at least one memory; instructions in the apparatus; andprogrammable circuitry to be programmed based on the instructions to:operate in a transmit mode during a first period of time to causetransmission of first signals, the first signals to be received by aplurality of access points; operate in a receive mode during a secondperiod of time to receive second signals from the plurality of accesspoints; log device identifiers of the plurality of access points inassociation with signal strengths of corresponding ones of the secondsignals; and cause transmission of the device identifiers and the signalstrengths to a server, the device identifiers and the signal strengthsto facilitate processes at the server to: (a) train a neural network,(b) generate a corrected contour map associated with the plurality ofaccess points based on the neural network, and (c) determine a locationof the apparatus based on the corrected contour map.
 8. The apparatus ofclaim 7, wherein the signal strengths are first signal strengths, thefirst signals associated with second signal strengths at the pluralityof access points, the programmable circuitry to cause the transmissionof the device identifiers and the signal strengths to the server tofacilitate the processes at the server to train the neural network basedon the first and second signal strengths.
 9. The apparatus of claim 7,wherein the device identifiers are service set identifiers.
 10. Theapparatus of claim 7, wherein the programmable circuitry is to log atimestamp to indicate a time at which the apparatus switches between thereceive mode and the transmit mode.
 11. The apparatus of claim 7,wherein, during the transmit mode, the programmable circuitry is tocause transmission of a mobile device identifier to be received by theplurality of access points.
 12. The apparatus of claim 11, wherein themobile device identifier is at least one of a universal deviceidentifier, an identifier for advertising, an identifier for vendor, anAndroid identifier, a device name, or a media access control address.13. The apparatus of claim 7, wherein the programmable circuitry is tocontrol the first period of time and the second period of time.
 14. Anon-transitory computer readable storage medium comprising instructionsto cause programmable circuitry to at least: operate in a transmit modeduring a first period of time to cause transmission of first signals,the first signals to be received by a plurality of access points;operate in a receive mode during a second period of time to receivesecond signals from the plurality of access points; log deviceidentifiers of the plurality of access points in association with signalstrengths of corresponding ones of the second signals; and causetransmission of the device identifiers and the signal strengths to aserver, the device identifiers and the signal strengths to facilitateprocesses at the server to: (a) train a neural network, (b) generate acorrected contour map associated with the plurality of access pointsbased on the neural network, and (c) determine a location of theprogrammable circuitry based on the corrected contour map.
 15. Thenon-transitory computer readable storage medium of claim 14, wherein thesignal strengths are first signal strengths, the first signalsassociated with second signal strengths at the plurality of accesspoints, the instructions to cause the programmable circuitry to causethe transmission of the device identifiers and the signal strengths tothe server to facilitate the processes at the server to train the neuralnetwork based on the first and second signal strengths.
 16. Thenon-transitory computer readable storage medium of claim 14, wherein thedevice identifiers are service set identifiers.
 17. The non-transitorycomputer readable storage medium of claim 14, wherein the instructionsare to cause the programmable circuitry to log a timestamp, thetimestamp to indicate a time at which the programmable circuitryswitches between the receive mode and the transmit mode.
 18. Thenon-transitory computer readable storage medium of claim 14, wherein theinstructions are to cause the programmable circuitry to control thefirst period of time and the second period of time.
 19. Thenon-transitory computer readable storage medium of claim 14, wherein,during the transmit mode, the instructions are to cause the programmablecircuitry to cause transmission of a mobile device identifier to bereceived by the plurality of access points.
 20. The non-transitorycomputer readable storage medium of claim 19, wherein the mobile deviceidentifier is at least one of a universal device identifier, anidentifier for advertising, an identifier for vendor, an Androididentifier, a device name, or a media access control address.